[網友來信] C 語言與 R 語言有什麼不一樣?
以下回答網友私訊詢問的問題。為了讓有相同疑問的朋友受益,所以就把答案去掉個資後,刊登於此。希望能幫助到其他網友。
我有簡單回答「什麼是指標」喔!如果您聽懂了,恭喜您!您已經衝破指標第一個關卡「到底什麼是指標」這個問題了!
那麼,就正文開始囉!
---------
紀老師回答:
C 語言有個特殊的機制叫「指標(Pointer)」,是 R 語言沒有的。所謂「指標」,其實就是「儲存『記憶體位址』的『變數』」而已(一般變數是儲存『一般數值』,不是『位址』)。有了指標,只要知道某個硬體所在的「位址」是多少(通常查規格書就有),就能把該位址存入一個變數(現在你已經知道能存位址的變數,我們叫它指標了),然後抓著該變數內的位址,直接對該硬體做「讀」或「寫」的動作。所以,C 語言很適合用來「控制硬體」。
而存到 R 語言變數內的東西,則一律視為能加減乘除的「一般數值」。就算你把某個硬體的位址塞入 R 語言變數,它也只能被允許拿來加減乘除而已。不像 C 語言,它給你選擇是要拿來加減乘除,還是當成位址讀寫該位址所指示的記憶體。
至於 R 語言的優點,由於它內建大量統計用函數。什麼標準差、高斯分佈、帕松分佈...等公式,都是直接叫用就有。不必像 C 語言(或其他非統計用語言)還得自己實作那些函數後,才能做到一些統計功能。所以 R 語言很適合拿來做統計、或大數據分析的工作。
希望這樣的回答有幫助!